]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
polkitAgent: Update user name on user changes
authorJonas Dreßler <verdre@v0yd.nl>
Sun, 23 Jun 2019 09:52:54 +0000 (11:52 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Tue, 5 Nov 2019 17:52:15 +0000 (18:52 +0100)
Right now we only update the user avatar on the user-changed signal, but
since we also display the users real name we should also update that if
the user changes.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/788

js/ui/components/polkitAgent.js

index 03eaf7152fd68292e079125ece5a50c76b3fed14..6c519a647c239333374b3af8fc5d97fbb5e75923 100644 (file)
@@ -51,41 +51,37 @@ var AuthenticationDialog = GObject.registerClass({
             userName = userNames[0];
 
         this._user = AccountsService.UserManager.get_default().get_user(userName);
-        let userRealName = this._user.get_real_name();
+
+        let userBox = new St.BoxLayout({
+            style_class: 'polkit-dialog-user-layout',
+            vertical: false,
+        });
+        content.messageBox.add(userBox);
+
+        this._userAvatar = new UserWidget.Avatar(this._user, {
+            iconSize: DIALOG_ICON_SIZE,
+            styleClass: 'polkit-dialog-user-icon',
+        });
+        this._userAvatar.hide();
+        userBox.add_child(this._userAvatar);
+
+        this._userLabel = new St.Label({
+            style_class: userName === 'root'
+                ? 'polkit-dialog-user-root-label'
+                : 'polkit-dialog-user-label',
+            x_expand: true,
+            y_align: Clutter.ActorAlign.CENTER,
+        });
+
+        if (userName === 'root')
+            this._userLabel.text = _('Administrator');
+
+        userBox.add_child(this._userLabel);
+
         this._userLoadedId = this._user.connect('notify::is-loaded',
                                                 this._onUserChanged.bind(this));
         this._userChangedId = this._user.connect('changed',
                                                  this._onUserChanged.bind(this));
-
-        // Special case 'root'
-        let userIsRoot = false;
-        if (userName == 'root') {
-            userIsRoot = true;
-            userRealName = _("Administrator");
-        }
-
-        if (userIsRoot) {
-            let userLabel = new St.Label(({ style_class: 'polkit-dialog-user-root-label',
-                                            text: userRealName }));
-            content.messageBox.add_child(userLabel);
-        } else {
-            let userBox = new St.BoxLayout({ style_class: 'polkit-dialog-user-layout',
-                                             vertical: false });
-            content.messageBox.add(userBox);
-            this._userAvatar = new UserWidget.Avatar(this._user,
-                                                     { iconSize: DIALOG_ICON_SIZE,
-                                                       styleClass: 'polkit-dialog-user-icon' });
-            this._userAvatar.hide();
-            userBox.add_child(this._userAvatar);
-            let userLabel = new St.Label(({
-                style_class: 'polkit-dialog-user-label',
-                text: userRealName,
-                x_expand: true,
-                y_align: Clutter.ActorAlign.CENTER,
-            }));
-            userBox.add_child(userLabel);
-        }
-
         this._onUserChanged();
 
         this._passwordBox = new St.BoxLayout({ vertical: false, style_class: 'prompt-dialog-password-box' });
@@ -303,7 +299,15 @@ var AuthenticationDialog = GObject.registerClass({
     }
 
     _onUserChanged() {
-        if (this._user.is_loaded && this._userAvatar) {
+        if (!this._user.is_loaded)
+            return;
+
+        let userName = this._user.get_user_name();
+        let realName = this._user.get_real_name();
+
+        if (userName !== 'root') {
+            this._userLabel.set_text(realName);
+
             this._userAvatar.update();
             this._userAvatar.show();
         }